条码扫描器高速译码系统设计 条码扫描器译码硬件有哪些
在光学系统中,光点扫描的线速度约为60~120m/s。一般,条码条空的最小宽度约0.25mm,最宽约2.5mm左右,因此,最小脉冲宽度约2μs,最大脉冲宽度40μs。当商品移过扫描区时,扫描到的文字,图案和未被完整扫描的条码形成杂散背景,再考虑到自动码制识别,如果只用简单的单片机系统,则译码速度太慢,不能满足要求。因此,在我们的设计中,译码硬件系统包括预处理单元和单片机译码单元两部分。
条码扫描器高速译码系统设计 条码扫描器译码硬件有哪些
1 预处理单元
预处理单元完成从信号序列中实时提取条码信号并保存在数据缓冲区的功能,对条码的译码由单片机完成。
输入信号为已经整形的脉冲数字信号,脉冲宽度对应于条码条、空及杂散线条的宽度,为模拟量。在预处理中首先用非线性计数器对该宽度进行模数转换,分辨率为9位,当宽度超过9位时,计数值锁定在满度。用非线性除法器计算相邻条、空或空、条的宽度比。考虑到条码印刷、扫描光点及电子电路等环节会给宽度带来误差,宽度比不会是理论上的整数,因此,非线性除法器设计成误差包容,且输出经过取整和分类,仅为多个有效比值1、2、3、4、8和一个异常比值0。比值进入一系列状态机进行状态计算,状态机的数量与条码种类数及每类条码的特征数有关。每类条码占用独立的一组状态机,对EAN码,有三个状态机,分别检测起始符、中间符和结束符。当以空起头的连续四个条空其宽度比满足7:1:1时,判断为一个有效的起始符,起始符状态机输出为真;当以空起头的连续五个条空其宽度比满足1:1:1:1时,判断为一个有效的中间符,中间符状态机输出为真;当以条起头的连续四个条空其宽度比满足1:1:7时,判断为一个有效的结束符,结束符状态机输出为真。因此,根据状态机的输出真假及顺序判断一段信号是否是条码,做出的判断产生缓冲区的控制信号,决定是否把当前的输入信号保存。当找出一组条码信号后,产生联络信号通知单片机进行译码。输出信号包括数字化的条、空的宽度和联络信号。由于状态计算及状态判断是实时和并行的,所以可实现实时判断条码种类、阻止非条码信号进入缓冲区等功能。
2 单片机译码单元
条码值的翻译用单片机完成。单片机采用美国Dallas公司的80C320,它是内核改进型的51系列单片机,有中等的运算速度。系统原理如图3所示,整个电路以单片机为核心,包括存放程序的存储器、预处理器接口电路、激光二极管控制电路、RS-232串行通讯接口电路、仿键盘输出接口电路、电机控制电路和用以指示译码成功的发声发光电路。输入数据来自数据缓冲区,由于缓冲区的数据已基本上是条码数据,单片机只须进行单一的码值译码,对运算速度要求大大降低。软件设计包括对信号的进一步筛选,码值的确定,奇偶校验;转镜电机与激光二极管的自动开启和关闭,任选的RS-232串行通讯或仿键盘输出方式与主机通讯,以及表明译码成功的声光指示等。程序用C-51语言编写,无纠错的一次译码约需10ms,一位纠错的一次译码约需40ms。最终输出采用3取2策略,以提高正确率。
预处理单元采用可编程逻辑器件实现,具有高的集成度和可靠性。用硬件描述语言进行设计,在软件开发环境下用测试矢量进行100%的设计功能测试,测试通过后硬件不需要再调试,因此研制效率很高。预处理响应时间应不大于最小条码宽度所对应的时间,我们取1μs。按框图,预处理分6个步骤,其中非线性除法器延时不大于200ns,其余每个步骤延时不大于50ns,总延时不大于500ns。
本文地址: https://www.xsyiq.com/24731.html
网站内容如侵犯了您的权益,请联系我们删除。